The present invention relates to data structures and methods for imaging computer readable media.
Providing backup data to a hard drive of a computing device is of vital importance in today""s information age. Individuals have become so dependent upon using their computing device, that they have become non functional when the device is inoperable. When a computing device starts up, or is booted up, it uses a hard drive memory associated with the computing device to provide all the necessary data files and data application programs to the user of the device. Some of these files may reside locally on the computing device, while others are provided remotely to the computing device if the computing device is networked with other devices providing files and applications.
A standard process, referred to as imaging a hard drive, takes a snapshot of a hard drive often referred to as a source image associated with an originating computing device. This allows the source image data to be stored off onto additional computer readable media, such as and by way of example only, CDs, diskettes, additional hard drives, and other magnetic or optical storage devices.
During the imaging process an end user, or software application initiating the imaging process, has little to no control over how the imaged data coming from an image source (e.g., hard drive of a computing device which is being backed up) will be structured or organized in the imaged data (e.g. external media housing the image source in format which may be used to restore the image source as needed to an image target).
An imaging process typically writes, in a binary format (e.g. image data), the image source onto a computer readable medium. This write process is usually performed serially, since attempting to store the data in random access memory (xe2x80x9cRAMxe2x80x9d) and then further attempting to provide some intelligent structure to the data, is not a practical option given the size of the image source, which could exceed several gigabytes, or terabytes of data (especially for network or remote imaging of client computing devices). Even if the imaged data are compressed, before being housed in RAM, the size of the compressed data still makes it infeasible to attempt. Moreover, trying to write to external media as an intermediate step and then running a process to structure the imaged data, creates an impractical process and time consuming operation.
However, some minimal structure is often provided to ensure that partition information, or basic file attribute information (e.g., creation date, modified date, and the like) is captured, to ensure that the image data created from an image source is adequately reproducible onto some future image target.
Yet, because only minimal structure or control is given to the end user or the application initiating an image process, the ability to control or limit what is imaged is minimal. Moreover, it may be extremely desirable to append files from an image source into existing imaged data, without having to perform an entire image process from start. Imaging can be a time and process intensive operation, which many users are reluctant to perform, and correspondingly users may rely on automated processes initiated in the early morning hours, when the users are not likely to be using their computing devices which are being imaged.
Likewise, networked computing devices or servers which are imaged, are often imaged in the early morning hours or at scheduled times in which the individual end users are notified of scheduled down times when the imaging processes will take place. Further, some imaging processes may not permit other applications to run while the imaging is taking place, this is because a file which is being imaged could be modified/altered, which may affect the overall integrity of the imaging operation.
Accordingly, the imaging process should be controllable and customizable by the end user to alleviate usability/performance concerns as discussed above. To do this, the imaging process needs to be controlled at a data file level, rather, than what is presently done in the industry where control is performed at a partition level or the computer readable medium being imaged.
Moreover, end users should have the ability to view what is imaged and selectively restore items as needed, or exclude items altogether from an image. This would permit users to more intelligently control the back up and restoration of their data. Further, network administrators could use a single image to restore multiple image targets by selectively restoring, on one or more computing devices, only certain aspects of the image data based on file sets associated with individual computing devices.
Although some control may be provided in the creation of the imaged data, a better data format of the imaged data is needed to permit reproduction of the imaged data on target computing devices, even if some of these target computing devices utilize a file system different from the computing device which was the source of the imaged data.
Further, a better format of the imaged data would permit more user control and even modify the imaged data by excluding or including selected files included within the imaged data without compromising the integrity of the original imaged data. Additionally, the imaged data may be more effectively compressed with a better format and provides greater flexible and control for future uses which may be desired by an end user.
Accordingly, an object of the invention is to provide data structures and methods for imaging computer readable media. During the imaging process of a computer readable medium associated with a computing device, the data being captured from the source computer readable medium are structured such that information regarding one or more files residing on the source computer readable medium is easily customizable and restored to a target computer readable medium optimally and as needed. A type identifier identifies the type of data associated with a file in the source computer readable medium and a length data identifies the length of a data stream associated with a least a portion of the file. One or more data streams combine to form a single complete file.
Further, a file header includes an index to a partition type and includes one or more type identifiers along with one or more set types. A set type associates the file with logical groups, such as and by way of example only, files to include during an image process, files to exclude during an image process, files associated with work groups (e.g., system administrators, secretaries, developers, managers, and the like), files associated with certain data format, and others.
Once a source computer medium is imaged such that the above attributes are recorded, a single image may provide multiple customized image targets to one or more additional computing devices. Moreover, since the imaging is performed at a file level, rather, than the typical partition level, an interface (e.g., browser, customized windowing application, and the like) provides a user the ability to control the imaging process eliminating unwanted files in the image target. As one skilled in the art will readily appreciate this provides tremendous benefit to the user or network administrators performing the imaging.
Additional objectives, advantages and novel features of the invention will be set forth in the description that follows and, in part, will become apparent to those skilled in the art upon examining or practicing the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims. To achieve the foregoing and other objects and in accordance with the purpose of the present invention, data structures and methods for imaging computer readable media are provided.
A data structure used to recreate computer readable media is provided having a type identifier used to identify a type of image data originally imaged. Further a length data is used to identify the size of a data stream which is at least a portion of a file located in the imaged data. Zero or more data streams are operable to be assembled to form t he complete file.
In another aspect of the present invention, a method of collecting image data having executable instructions is provided wherein control data is received and associated with a file included in image data. The control data further includes a partition type, compression type, file length, and one or more file set types. Moreover, the control data is organized on a computer readable medium together with the file.
In yet another aspect of the present invention, a method of customizing the creation of an image on a computer readable medium is provided having executable instructions, wherein zero or more files in an image source are identified as exclude files and therefore not included in a created image target. Furthermore, one or more files in an image source are identified as files to include in the created image target.